package eu.dominicum.ft.pd.mao;

import eu.dominicum.ft.pd.FantasyTourConfiguration;
import eu.dominicum.ft.pd.Tour;

import javax.inject.Inject;
import javax.inject.Named;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;

/**
 * Method Arguments Object for {@link eu.dominicum.ft.pd.FantasyTour#make(MakeFantasyTourMAO)}.
 *
 * @author Harry Klerks
 * @since 2013M1
 */
@Named
public final class MakeFantasyTourMAO {

    /**
     * Tour.
     */
    private Tour tour;
    /**
     * Calculation configuration.
     */
    private FantasyTourConfiguration calculationConfiguration;
    /**
     * FantasyTour name.
     */
    @NotNull(message = "Fantasy Tour moet een naam hebben")
    private String name;
    /**
     * MAO to make a Tour.
     */
    @Inject
    @Valid
    private MakeTourMAO makeTourMAO;
    /**
     * MAO to make a Score calculation configuration.
     */
    @Inject
    @Valid
    private MakeFantasyTourConfigurationMAO makeFantasyTourConfigurationMAO;

    /**
     * .
     *
     * @return Long
     */
    public Tour getTour() {
        return tour;
    }

    /**
     * .
     *
     * @param newTourId -
     */
    public void setTour(final Tour newTourId) {
        this.tour = newTourId;
    }

    /**
     * .
     *
     * @return Long
     */
    public FantasyTourConfiguration getCalculationConfiguration() {
        return calculationConfiguration;
    }

    /**
     * .
     *
     * @param newCalculationConfigurationId -
     */
    public void setCalculationConfiguration(final FantasyTourConfiguration newCalculationConfigurationId) {
        this.calculationConfiguration = newCalculationConfigurationId;
    }

    /**
     * .
     *
     * @return String
     */
    public String getName() {
        return name;
    }

    /**
     * .
     *
     * @param newName -
     */
    public void setName(final String newName) {
        this.name = newName;
    }

    /**
     * .
     *
     * @return MakeTourMAO
     */
    public MakeTourMAO getMakeTourMAO() {
        return makeTourMAO;
    }

    /**
     * .
     *
     * @param newMakeTourMAO -
     */
    public void setMakeTourMAO(final MakeTourMAO newMakeTourMAO) {
        this.makeTourMAO = newMakeTourMAO;
    }

    /**
     * .
     *
     * @return MakeFantasyTourConfigurationMAO
     */
    public MakeFantasyTourConfigurationMAO getMakeFantasyTourConfigurationMAO() {
        return makeFantasyTourConfigurationMAO;
    }

    /**
     * .
     *
     * @param newMakeFantasyTourConfigurationMAO
     *         -
     */
    public void setMakeFantasyTourConfigurationMAO(final MakeFantasyTourConfigurationMAO newMakeFantasyTourConfigurationMAO) {
        this.makeFantasyTourConfigurationMAO = newMakeFantasyTourConfigurationMAO;
    }
}
